Merged
Conversation
MartinquaXD
added a commit
to cowprotocol/services
that referenced
this pull request
Sep 19, 2025
# Description Adjusts the code base to make use of `.call_with_state_overrides` that was introduced in cowprotocol/ethcontract-rs#983. # Changes - remove `StateOverrides` types from our code base because they are now in ethcontract-rs - replace `Arc<dyn CodeSimulating>` with `Web3` - use `.call_with_state_overrides` instead of weird extension trait on web3 - migrated module declaration from `<module>.rs` to `<module>/mod.rs` to be more consistent with the remaining code base ## How to test tests of balance overriding logic should still work
xdecentralix
pushed a commit
to balancer/services
that referenced
this pull request
Oct 7, 2025
# Description Adjusts the code base to make use of `.call_with_state_overrides` that was introduced in cowprotocol/ethcontract-rs#983. # Changes - remove `StateOverrides` types from our code base because they are now in ethcontract-rs - replace `Arc<dyn CodeSimulating>` with `Web3` - use `.call_with_state_overrides` instead of weird extension trait on web3 - migrated module declaration from `<module>.rs` to `<module>/mod.rs` to be more consistent with the remaining code base ## How to test tests of balance overriding logic should still work
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Using
eth_calltogether with state overrides is pretty useful and widely supported thing. Currently we need to use very ugly workaround in https://github.com/cowprotocol/services to use state overrides withethcontract-rs.In order to make everyone's lives easier it makes the most sense to make
call_with_state_overridesa first class citizen inethcontract-rs.StateOverridestruct which defines the format of things that can be overridencall_with_state_overridesonMethodCallBuilderandViewCallBuilderweb3crate not have any nice helper functions for using state overrides so I implemented the call with the underlying logic that theweb3crate would have calledTest Plan
I tested this by pointing the ethcontract dependency in the cowprotocol repo to a local checkout with this patch and did a manual test to make sure things work. Given that we are about to completely abandon this crate I think it's fine to check in a test specific for this.